Ana içeriğe geç

Binary Search

Binary search, bir sıralı dizide belirli bir öğenin konumunu bulmak için kullanılan etkili bir arama algoritmasıdır. Algoritma, dizinin ortasındaki öğeyi hedef öğe ile karşılaştırır ve hedef öğenin sol veya sağ tarafında kalan yarısını atarak aramayı sürdürür.

Aşağıdaki C kodu, bir sıralı dizi içinde aranan bir öğenin konumunu bulmak için binary search algoritmasını göstermektedir:

#include <stdio.h>

int binary_search(int arr[], int left, int right, int key) {
if (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == key) {
return mid; // öğe bulunduğunda konumunu döndürür
} else if (arr[mid] > key) {
return binary_search(arr, left, mid - 1, key); // sol yarıyı arar
} else {
return binary_search(arr, mid + 1, right, key); // sağ yarıyı arar
}
}
return -1; // öğe bulunamadığında -1 döndürür
}

int main() {
int arr[] = {1, 2, 3, 4, 5, 6};
int size = sizeof(arr) / sizeof(arr[0]);
int key = 4;

int result = binary_search(arr, 0, size - 1, key);

if (result == -1) {
printf("Öğe bulunamadı.");
} else {
printf("Öğe %d konumunda bulundu.", result);
}
return 0;
}


Bu kod örneğinde, binary_search fonksiyonu, arr sıralı dizisinde left ve right indisleri arasında aranan key öğesini bulmak için kullanılır. Fonksiyon, dizinin ortasındaki öğe ile hedef öğe karşılaştırır ve hedef öğenin sol veya sağ tarafında kalan yarıyı atarak aramayı sürdürür. Bu işlem, hedef öğe bulunana kadar devam eder.

main fonksiyonu, örnek bir sıralı dizi ve aranacak öğe belirler ve binary_search fonksiyonunu kullanarak öğenin konumunu bulur. Eğer öğe bulunamazsa "Öğe bulunamadı." çıktısı verilir, bulunursa "Öğe <konum> konumunda bulundu." şeklinde çıktı verilir.